# 1.编写函数 统计字符串'abcdddeca'中每个字母只出现一次的字符，
# 统计出的结果，请按照['b', 'e']的格式输出。
def fn():
    str1 = "abcdddeca"
    l = []
    for i in str1:
        if str1.count(i) == 1:
            l.append(i)
    print(l)


fn()


# 2.编写程序 实现输出100以内质数的功能。
def fn():
    for i in range(2, 101):
        flag = True
        for j in range(2, i):
            if i % j == 0:
                flag = False
                break
        if flag:
            print(i, end=",")


fn()


# 3.求三位水仙花数 (三位整数，其各位数字的三次方和等于该数本身)
def fn():
    for i in range(100, 1000):
        a = i // 100
        b = (i // 10) % 10
        c = i % 10
        if a ** 3 + b ** 3 + c ** 3 == i:
            print(i, end=",")


fn()
print()


# 4.求最小公倍数
def fn():
    a = int(input("请输入一个数："))
    b = int(input("请输入一个数："))
    for i in range(max(a, b), a * b + 1):
        if i % a == 0 and i % b == 0:
            print(f"最小公倍数为{i}")
            break


fn()


# 5.求回文数    回文数是一个正向和逆向都相同的整数
def fn():
    a = input("请输入一串数字")
    b = a[::-1]
    if a == b:
        print(f"{a}是回文数")
    else:
        print(f"{a}不是回文数")


fn()


# 6.编写函数，统计字符串'abcdddecA'中每个字母出现的次数
# (字母忽略大小写，a和A看作是一个字母)，统计出的结果，请按照
# {'a': 2, 'b': 1, 'c': 2, 'd': 3, 'e': 1}的格式输出。
def fn():
    str1 = "abcddecA"
    str2 = str1.lower()
    dirt = {}
    for i in str2:
        dirt[i] = str2.count(i)
    print(dirt)


fn()


# 7.百钱买百鸡：一只公鸡值五钱，一只母鸡值三钱，三只小鸡值一钱，
# 现在要用百钱买百鸡，请问公鸡、母鸡、小鸡各多少只？
def fn():
    for i in range(21):
        for j in range(34):
            k = 100 - i - j
            if k % 3 == 0 and i * 5 + j * 3 + k // 3 == 100:
                print(f"公鸡{i}只，母鸡{j}只，小鸡{k}只")


fn()
# 8.设计一个Circle(圆)类，在该类中包括属性radius(半径)，
# 还包括__init__(),get_perimeter()(求周长)和get_area()(求面积)共3个方法。
# 设计完成后，创建Circle类的对象求圆的周长和面积。
import math


class Circle:
    def __init__(self, r):
        self.radius = r

    def get_perimeter(self):
        print(f"周长为{2 * math.pi * self.radius}")

    def get_area(self):
        print(f"面积为{math.pi * self.radius * self.radius}")


circle = Circle(3)
circle.get_perimeter()
circle.get_area()


# 9.设计一个Course(课程)类，该类中包括number(编号)，name(名称)，
# teacher(任课教师)，location(上课地点)共4个属性,location是私有属性__；还包括__init__()，
# show_info()(显示课程信息)共 2个方法。设计完成后，创建Course类的对象显示课程的信息。
class Course:
    def __init__(self, number, name, teacher, location):
        self.number = number
        self.name = name
        self.teacher = teacher
        self.__location = location

    def show_info(self):
        print(f"课程编号为：{self.number}，课程名称为：{self.name}，任课老师为：{self.teacher}，上课地点为：{self.__location}")


course = Course("001", "语文", "王老师", "中心校区")
course.show_info()


# 10.设计一个表示动物的类：Animal，其内部有一个color(颜色)属性和call(叫)方法。
# 再设计一个Fish(鱼)类，该类中有tail(尾巴)和color属性，以及一个call(叫)方法。
# 要求：让Fish类继承自Animal类，重写__init__和call方法。
class Animal(object):
    def __init__(self, color):
        self.color = color

    def call(self):
        print("动物叫！")


class Fish(Animal):
    def __init__(self, color, tail):
        super().__init__(color)
        self.tail = tail

    def call(self):
        print("鱼叫！")
